combit List & Label 29 - .NET Hilfe
Einführung in die Programmierung / Beispiele / Allgemein / Projektdateien in Datenbank halten
In diesem Thema
    Projektdateien in Datenbank halten
    In diesem Thema

    Projektdateien können auch direkt in Datenbanken gespeichert werden. Neben der Möglichkeit, diese direkt aus der Datenbank zu entpacken und im lokalen Dateisystem zu speichern kann diese Arbeit auch auf List & Label abgewälzt werden. Die Print- und Design-Methoden haben Überladungen, die die direkte Angabe eines Streams erlauben.

    Bei Verwendung dieser Überladungen sind einige wichtige Verhaltensänderungen zu beachten. Hintergrund für diese ist das Fehlen eines lokalen Dateikontextes und damit verbunden die fehlende Möglichkeit, neue Dateien anzulegen:

    Für den Designfall kann es natürlich passieren, dass der übergebene Stream modifiziert wird. In diesem Fall müssen Sie nach Ende des Designs den aktualisierten Stream in die Datenbank schreiben.

     

    Eine elegantere Vorgehensweise - ohne Einschränkungen im Designer - ist die Verwendung des Repository (virtuelles Dateisystem). Der prinzipielle Aufbau und Verweise auf Beispielimplementierungen finden sich im Namespace combit.Reporting.Repository wieder.

     

    using (ListLabel LL = new ListLabel())
    {
        // Datenquelle definieren/zuweisen
        LL.DataSource = CreateDataSet();
    
        byte[] report = GetReportFromDatabase();
        MemoryStream memStream = new MemoryStream(report);
    
        // Drucken
        LL.Print(LlProject.List, memStream);
    }
    
    Using LL As New ListLabel()
        ' Datenquelle definieren/zuweisen
        LL.DataSource = CreateDataSet()
    
        Dim report As Byte() = GetReportFromDatabase()
        Dim memStream As New MemoryStream(report)
    
        ' Drucken
        LL.Print(LlProject.List, memStream)
    End Using